import random
'''
 第一次报错 IndexError: string index out of range
 初始的clue变量设置不正确，应该是一个与秘密单词长度相同的列表
 当用户输入单个字母时，原代码仍尝试按完整单词处理导致索引越界
 缺少对输入字母是否在秘密单词中的判断
'''
# 欢迎
print("Welcome to Guess Word Game!")
# 游戏生命
lives=3
# 单词列表
words=['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane']
# 随机选择一个单词
secret_word=random.choice(words)

# 线索
# clue=["?????"] --> 改进一下
clue = list('?' * len(secret_word))

# 心形符号
heart_symbol=u'\u2764'

# 辅助函数 -- 更新线索
def update_clue(secret_word,input_word, clue):
    index=0
    while index < len(secret_word):
        if input_word==secret_word[index]:
            clue[index]=input_word
            index+=1
        else :
            index+=1

# 主循环
while lives>0:
    print(f"线索：{clue}")
    print(f"所剩生命还有：{heart_symbol * lives}")
    input_word=input("请猜测一个单词或者字母：")

    # if input_word==secret_word:  -->  更新一下，防止猜单个字母越界
    # 猜整个单词
    if len(input_word) > 1:
        if input_word==secret_word:
            print("You win!")
            break
        else:
            print("猜错了!")
    # 猜一个字母
    else:
        # 判断一下字母是否在目标单词中，减少更新的次数，让代码更高效
        if input_word in secret_word:
            update_clue(secret_word,input_word,clue)
        else:
            print('错误。你丢了一条命\n')
            lives-=1

print(f"游戏结束！正确单词为：{secret_word}")
